package com.doubao.device.dto.request;

import lombok.Data;

import jakarta.validation.constraints.NotNull;
import java.util.List;

/**
 * 更新智能体请求
 */
@Data
public class UpdateDeviceRequest {

    /**
     * 智能体ID
     */
    @NotNull(message = "智能体ID不能为空")
    private Long id;

    /**
     * 智能体名称
     */
    private String name;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 描述
     */
    private String description;

    /**
     * 提示词
     */
    private String prompt;

    /**
     * 分类ID
     */
    private Long categoryId;

    /**
     * AI提供商ID
     */
    private Long aiProviderId;

    /**
     * AI模型ID
     */
    private Long aiModelId;

    /**
     * 是否公开 1:是 0:否
     */
    private Integer isPublic;

    /**
     * 是否付费 1:是 0:否
     */
    private Integer isPremium;

    /**
     * 最大上下文长度
     */
    private Integer maxContextLength;

    /**
     * 知识库ID列表
     */
    private String knowledgeBaseIds;

    /**
     * 能力集合，如search,code,image
     */
    private String abilities;

    /**
     * 语音ID
     */
    private String voiceId;

    /**
     * 语音类型
     */
    private String voiceType;

    /**
     * 语音速率
     */
    private Float voiceSpeedRatio;

    /**
     * API端点ID
     */
    private String apiEndpointId;

    /**
     * API密钥
     */
    private String apiKey;

    /**
     * API基础URL
     */
    private String apiBaseUrl;

    /**
     * API超时设置（秒）
     */
    private Integer apiTimeout;

    /**
     * API重试次数
     */
    private Integer apiRetryTimes;

    /**
     * 扩展JSON
     */
    private String extJson;

    /**
     * 标签ID列表
     */
    private List<Long> tagIds;
}